// These are meant to be typed into the REPL. You can also run
// scala -Xnojline < 15_partial.sc to run them all at once.
/**
  * 5.15偏函数
  * 偏函数之所以“偏”，原因在于它们并不处理所有可能的输入，而只处理那些能与至少一个case语句匹配的输入。
  * 在偏函数中只能使用case语句，而整个函数必须用花括号包围。这与普通的函数字面量不同，
  * 普通函数字面量可以用花括号，也可以用圆括号包围。
  * 如果偏函数被调用，而函数的输入却与所有语句都不匹配，系统就会抛出一个MatchError运行时错误。
  * 可以用isDefineAt方法测试特定输入是否与偏函数匹配，以避免错误。
  */
val f: PartialFunction[Char, Int] = { case '+' => 1 ; case '-' => -1 }
f('-') 
f.isDefinedAt('0')

f('0') 
